//
//  TimeInterval+Ext.swift
//  TTCOM
//
//  Created by Toj on 8/2/22.
//

import Foundation

public extension TimeInterval {
    
    /** 秒转字符串
     * format: 返回格式
     */
    func to_string(format: String) -> String {
        // 秒
        return Int(self).to_timeString(format)
    }
}
// MARK: - 时间格式化
public extension TimeInterval {
    
    /**
     时间 梯度格式化
     - 区间(今年, ~): yyyy-MM-dd(x年x月x日)
     - 区间[非今日, 今年]:
     - 1. 区间[昨天]: "昨天 HH:mm"
     - 2. 区间[非昨天, 今年]: "MM-dd"
     - 区间[~, 今日]:
     - 1. 区间[1时, 今日]: "n小时前"
     - 2. 区间[1分, 1时): "n分钟前"
     - 3. 区间[0秒, 1分): "刚刚"
     */
    func to_dateSeries(equally date: Date) -> String {
        let selfDate = Date(timeIntervalSince1970: self)
        return selfDate.to_dateSeries(equally: date)
    }
    
    /**
     时间 梯度格式化
     - 区间(今年, ~): yyyy-MM-dd(x年x月x日)
     - 区间[非今日, 今年]:
     - 1. 区间[昨天]: "昨天 HH:mm"
     - 2. 区间[非昨天, 今年]: "MM-dd"
     - 区间[~, 今日]:
     - 1. 区间[1时, 今日]: "n小时前"
     - 2. 区间[1分, 1时): "n分钟前"
     - 3. 区间[0秒, 1分): "刚刚"
     */
    var to_dateSeries: String {
        // let date = Date(timeIntervalSince1970: 1699581600)
        let date = Date()
        return to_dateSeries(equally: date)
    }
    
    /**
     ST(四达)时间梯度, 发布时间显示规则
     - 区间(今年, ~): yyyy-MM-dd(x年x月x日)
     - 区间[1天, 今年]: MM-dd(x月x日)
     - 区间[30分钟, 1天): HH:mm(24小时制)
     - 区间[0, 30分钟): 刚刚
     */
    func st_dateSeries(equally date: Date) -> String {
        let selfDate = Date(timeIntervalSince1970: self)
        return selfDate.st_dateSeries(equally: date)
    }
    
    /**
     ST(四达)时间梯度, 发布时间显示规则
     - 区间(今年, ~): yyyy-MM-dd(x年x月x日)
     - 区间[1天, 今年]: MM-dd(x月x日)
     - 区间[30分钟, 1天): HH:mm(24小时制)
     - 区间[0, 30分钟): 刚刚
     */
    var st_dateSeries: String {
        // let date = Date(timeIntervalSince1970: 1699581600)
        let date = Date()
        return st_dateSeries(equally: date)
    }
}
